package com.oa.ylms.apps.dao.leave;

import java.util.List;

import com.oa.ylms.apps.entity.archives.ArchiveInfoValue;
import com.oa.ylms.apps.entity.archives.StaffInfoValue;
import com.oa.ylms.apps.entity.leave.LeaveInfoValue;

public interface ILeaveInfoDao {

	public int addLeaveInfo(LeaveInfoValue leaveInfo) throws Exception;

	public boolean deleteLeaveInfo(LeaveInfoValue leaveInfo) throws Exception;

	public boolean modifyLeaveInfo(LeaveInfoValue leaveInfo) throws Exception;
	
	public List<LeaveInfoValue> queryLeaveInfoByStaffIdWithPage(StaffInfoValue staffInfo, int rows, int pageNo) throws Exception;
	
	public List<LeaveInfoValue> queryLeaveInfoByMinisterWithPage(int sectionId, ArchiveInfoValue archiveInfo, LeaveInfoValue leaveInfo, int rows, int pageNo) throws Exception;

	public List<LeaveInfoValue> queryLeaveInfoByChairmanWithPage( ArchiveInfoValue archiveInfo, LeaveInfoValue leaveInfo,int rows, int pageNo) throws Exception;
	
	public LeaveInfoValue queryLeaveInfoByLeaveId(int leaveId) throws Exception;
	
	public List<LeaveInfoValue> queryLeaveInfoByStaffIdWithPage(int staffId, int states, int rows, int pageNo) throws Exception;
	
	public int countTpages(StaffInfoValue staffInfo, int rows) throws Exception;
	
	public int countTpagesByMinister(int sectionId,ArchiveInfoValue archiveInfo, LeaveInfoValue leaveInfo,int rows) throws Exception;
	
	public int countTpagesByChairman(ArchiveInfoValue archiveInfo, LeaveInfoValue leaveInfo,int rows) throws Exception;

	public int countTpagesByStaffId(StaffInfoValue staffInfo, int rows) throws Exception;

	public int getTotalNumber()throws Exception;
	
	public int countTpagesByStaffId(int staffId, int states, int rows) throws Exception;

	
}
